/*
只将接口暴露给user，对user隐藏接口实现的细节
保持接口的一致有利于改变底层实现和代码迭代
降低user的使用成本，user只关心需要关心的
user无法破坏直接破坏对象的状态
*/